﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Controllers
{
    public class RegistrarViajeController
    {
        public static void Agregar(RegistrarViaje RegistrarViaje)
        {
            var sql = "";

            if (RegistrarViaje.Viaje_ClienteId > -1)
            {
                 sql = "INSERT INTO SUPERACIDOS.Viaje (Viaje_Cant_Fichas, " +
                                                         " Viaje_Fecha, " +
                                                         " Viaje_ClienteId, " +
                                                         " Viaje_ChoferId, " +
                                                         " Viaje_AutoId, " +
                                                         " Viaje_TurnoId, " +
                                                         " Viaje_TipoViajeId, " +
                                                         "Viaje_Importe) " +
                           " VALUES ({0},'{1}',{2},{3},{4},{5},{6},{7})";

                sql = string.Format(sql,
                    RegistrarViaje.Viaje_Cant_Fichas,
                    RegistrarViaje.Viaje_Fecha.ToString("yyyy-MM-dd HH:00.000"),
                    RegistrarViaje.Viaje_ClienteId,
                    RegistrarViaje.Viaje_ChoferId,
                    RegistrarViaje.Viaje_AutoId,
                    RegistrarViaje.Viaje_TurnoId,
                    RegistrarViaje.Viaje_TipoViajeId,
                    RegistrarViaje.Viaje_Importe.ToString().Replace(',', '.'));
            }
            else
            {
                 sql = "INSERT INTO SUPERACIDOS.Viaje (Viaje_Cant_Fichas, " +
                                         " Viaje_Fecha, " +
                                         " Viaje_ChoferId, " +
                                         " Viaje_AutoId, " +
                                         " Viaje_TurnoId, " +
                                         " Viaje_TipoViajeId, " +
                                         "Viaje_Importe) " +
           " VALUES ({0},'{1}',{2},{3},{4},{5},{6})";

                sql = string.Format(sql,
                    RegistrarViaje.Viaje_Cant_Fichas,
                    RegistrarViaje.Viaje_Fecha.ToString("yyyy-MM-dd HH:00.000"),
                    RegistrarViaje.Viaje_ChoferId,
                    RegistrarViaje.Viaje_AutoId,
                    RegistrarViaje.Viaje_TurnoId,
                    RegistrarViaje.Viaje_TipoViajeId,
                    RegistrarViaje.Viaje_Importe.ToString().Replace(',', '.'));
            }

            ConexionBaseDeDatos.Guardar(sql, CommandType.Text);

        }

        public static bool ExisteViaje(RegistrarViaje RegistrarViaje)
        {
            var sql = "SELECT COUNT(*) Cantidad " +
                      "FROM SUPERACIDOS.Viaje " +
                      "WHERE  Viaje_ClienteId = {0}   AND Viaje_Fecha = '{1}'";

            sql = string.Format(sql, RegistrarViaje.Viaje_ClienteId, RegistrarViaje.Viaje_Fecha.ToString("yyyy-MM-dd HH:00.000"));

            var cantidad = 0;
            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                reader.Read();
                if (reader["Cantidad"] != DBNull.Value)
                    cantidad = (int)reader["Cantidad"];

            }

            return cantidad > 0;
        }

        public static bool ExisteViajeChofer(RegistrarViaje RegistrarViaje)
        {
            var sql = "SELECT COUNT(*) Cantidad " +
                      "FROM SUPERACIDOS.Viaje " +
                      "WHERE  Viaje_ChoferId = {0}   AND Viaje_Fecha = '{1}'";

            sql = string.Format(sql, RegistrarViaje.Viaje_ChoferId, RegistrarViaje.Viaje_Fecha.ToString("yyyy-MM-dd HH:00.000"));

            var cantidad = 0;
            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                reader.Read();
                if (reader["Cantidad"] != DBNull.Value)
                    cantidad = (int)reader["Cantidad"];

            }

            return cantidad > 0;
        }

   
    }
}
